'''
Created on 30/04/2013

@author: mirta
'''
from app import db

from app.models.fase import Fase
from app.models.linea_base import LineaBase
from app.models.tipoItem import TipoItem

class Historial(db.Model):
    
    __tablename__ = 'historial'
    id = db.Column(db.Integer, primary_key=True)
    id_item = db.Column(None, db.ForeignKey("item.id"), nullable=True)
    nombre = db.Column(db.String(50))
    version = db.Column(db.String(50))
    prioridad = db.Column(db.String(50))
    costo = db.Column(db.Float)
    complejidad = db.Column(db.String(50))
    duracion = db.Column(db.String(50))
    estado = db.Column(db.String(50))
    descripcion = db.Column(db.String(120))
    observacion = db.Column(db.String(120))
    numero = db.Column(db.Integer)
    fecha_creacion = db.Column(db.Date)
    antecesor_id = db.Column(None, db.ForeignKey("item.id"), nullable=True)
    padre_id = db.Column(None, db.ForeignKey("item.id"), nullable=True)
    fecha_modificacion = db.Column(db.Date)
    #antecesor = db.Column(db.Integer)
    #padre = db.Column(db.Integer)
   
    fase_id = db.Column(None, db.ForeignKey("fase.id"), nullable=True)
    fase = db.relation(Fase, backref=db.backref('fase_historial'))
    
    linea_base_id = db.Column(None, db.ForeignKey("linea_base.id"), nullable=True)
    linea_base = db.relation(LineaBase, backref=db.backref('lb_historial'))
    
    tipo_id = db.Column(None, db.ForeignKey("tipo_item.id"), nullable=True)
    tipo = db.relation(TipoItem, backref=db.backref('tipo_item'))


    def __init__(self, nombre=None, version=None, prioridad=None, costo=None, complejidad=None,
                  duracion=None, estado=None, descripcion=None, observacion=None, numero=None,
                   fecha_creacion=None, antecesor_id=None, padre_id=None, fase=None, linea_base=None,
                   fecha_modificacion=None, tipo = None):
        
        self.nombre = nombre
        self.version = version
        self.prioridad = prioridad
        self.costo = costo
        self.complejidad = complejidad
        self.duracion = duracion
        self.estado = estado
        self.descripcion = descripcion
        self.observacion = observacion
        self.numero = numero
        self.fecha_creacion = fecha_creacion
        self.antecesor_id = antecesor_id
        self.padre_id = padre_id
        self.fase = fase
        self.linea_base = linea_base
        self.fecha_modificacion = fecha_modificacion
        self.tipo = tipo
        
        
    def __repr__(self):
        return '<Item %r>' % (self.nombre)
    
    
    def setNombre(self, nombre):
        self.nombre = nombre
        
        
    def setAntecesor(self, antecesor_id):
        self.antecesor_id = antecesor_id
        
    
    def setPadre(self, padre_id):
        self.padre_id = padre_id
        
    
    def setEstado(self, estado):
        self.estado = estado
        
    
    def setVersion(self, version):
        self.version = version
        
    
    def setComplejidad(self, complejidad):
        self.complejidad = complejidad
        
    
    def setCosto(self, costo):
        self.costo = costo
        
        
    def setDuracion(self, duracion):
        self.duracion = duracion
        
    
    def setDescripcion(self, descripcion):
        self.descripcion = descripcion
        
    
    def setObservacion(self, observacion):
        self.observacion = observacion
        
    
    def setNumero(self, numero):
        self.numero = numero
        
    
    def setPrioridad(self, prioridad):
        self.prioridad = prioridad
        
    
    def setFechaCreacion(self, fecha):
        self.fecha_creacion = fecha
        
    
    def setFase(self, fase):
        self.fase = fase
        
    
    def setLb(self, lb):
        self.linea_base = lb
        
    def setFechaModificacion(self, fecha):
        self.fecha_modificacion = fecha    
        
        
    def setItemId(self, id_item):
        self.id_item = id_item